package cn.jetpiece.cloud.joss.app.modular.object.enums;

import cn.jetpiece.cloud.model.exception.enums.AbstractExceptionEnum;

/**
 * @author XuJZ
 * @since 2020/3/12
 */
public enum BasicExceptionEnum implements AbstractExceptionEnum {

    /**
     * 资源禁止访问
     */
    FORBIDDEN(403, "资源禁止访问！"),
    /**
     * 访问资源不存在
     */
    NOT_FOUND(404, "访问资源不存在！"),
    /**
     * 对象预览失败
     */
    OBJECT_PREVIEW_ERROR(103000, "对象预览失败！"),
    /**
     * 打开文件输入流失败
     */
    OPEN_INPUT_STREAM_ERROR(103001, "打开文件输入流失败！"),
    /**
     * 服务提供商不存在
     */
    PROVIDER_NOT_EXISTED(103002, "服务提供商不存在！"),
    /**
     * 服务提供商重复
     */
    PROVIDER_REPEAT(103003, "服务提供商重复！"),
    /**
     * 域不存在
     */
    REGION_NOT_EXISTED(103004, "域不存在！"),
    /**
     * 域重复
     */
    REGION_REPEAT(103005, "域重复！"),
    /**
     * 配置不存在
     */
    CONFIG_NOT_EXISTED(103006, "配置不存在！"),
    /**
     * 配置重复
     */
    CONFIG_REPEAT(103007, "配置重复！"),
    /**
     * 桶不存在
     */
    BUCKET_NOT_EXISTED(103008, "桶不存在！"),
    /**
     * 桶重复
     */
    BUCKET_REPEAT(103009, "桶重复！"),
    /**
     * 授权应用不存在
     */
    ACCESSOR_NOT_EXISTED(103010, "授权应用不存在！"),
    /**
     * 桶重复
     */
    ACCESSOR_REPEAT(103011, "授权应用重复！"),
    /**
     * 存储类型不存在
     */
    STORAGE_CLASS_NOT_EXISTED(103012, "存储类型不存在！"),
    /**
     * 桶重复
     */
    STORAGE_CLASS_REPEAT(103013, "存储类型重复！"),
    /**
     * 对象不存在
     */
    OBJECT_NOT_EXISTED(103014, "对象不存在！"),
    /**
     * 对象重复
     */
    OBJECT_REPEAT(103015, "对象重复！"),
    /**
     * 内容类型不存在
     */
    CONTENT_TYPE_NOT_EXISTED(103016, "内容类型不存在！"),
    /**
     * 桶重复
     */
    CONTENT_TYPE_REPEAT(103017, "内容类型重复！"),
    /**
     * 不支持的文件扩展名
     */
    CONTENT_TYPE_NOT_SUPPORT(103018, "不支持的文件扩展名！"),
    /**
     * 对象存储不存在
     */
    OBJECT_STORAGE_NOT_EXISTED(103014, "对对象存储不存在！"),
    /**
     * 对象存储重复
     */
    OBJECT_STORAGE_REPEAT(103015, "对象存储重复！"),
    /**
     * 对象上传失败
     */
    OBJECT_UPLOAD_ERROR(103016, "对象上传失败！"),
    /**
     * URL不能解析
     */
    URL_COULD_NOT_BE_PARSED(103017, "URL不能解析！"),
    /**
     * URL访问异常
     */
    URL_ACCESS_EXCEPTION(103018, "URL访问异常！"),
    /**
     * 不支持的服务商
     */
    NOT_SUPPORT_PROVIDER(103019, "不支持的服务商！"),
    /**
     * 对象删除失败
     */
    OBJECT_DELETE_ERROR(103020, "对象删除失败！"),
    /**
     * 桶删除失败
     */
    BUCKET_DELETE_ERROR(103021, "桶删除失败！"),
    /**
     * 桶内不为空不能删除
     */
    BUCKET_CANNOT_DELETE_WITHOUT_NULL(103022, "桶内不为空不能删除！"),
    /**
     * MinIOClient创建失败
     */
    MINIO_CLIENT_CREATE_ERROR(103023, "MinIOClient创建失败！"),
    /**
     * 服务商下存在桶,不能删除
     */
    PROVIDER_CANNOT_DELETE_WITHOUT_NULL(103024, "服务商下存在桶,不能删除！"),
    /**
     * 域下存在桶,不能删除
     */
    REGION_CANNOT_DELETE_WITHOUT_NULL(103025, "域下存在桶,不能删除！"),
    /**
     * Base64格式异常
     */
    BASE64_FORMAT_EXCEPTION(103026, "Base64格式异常！"),
    /**
     * 对象下载失败
     */
    OBJECT_DOWNLOAD_ERROR(103027, "对象下载失败！"),
    /**
     * 新增桶失败
     */
    BUCKET_CREATE_ERROR(103028, "新增桶失败！"),
    /**
     * 服务商客户端创建异常
     */
    PROVIDER_CLIENT_CREATE_ERROR(103029, "服务商客户端创建异常"),
    /**
     * 服务商不支持对应API
     */
    PROVIDER_NOT_SUPPORT_API(103030, "服务商不支持对应API");

    private int code;
    private String message;

    BasicExceptionEnum(int code, String message) {
        this.code = code;
        this.message = message;
    }

    @Override
    public Integer getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    @Override
    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

}
